import json

import pandas as pd
from openpyxl import load_workbook


def excel_to_json_with_openpyxl(file_path):
    # 加载 Excel 文件
    workbook = load_workbook(file_path)
    result = []

    # 遍历每个工作表
    for sheet_name in workbook.sheetnames:
        sheet = workbook[sheet_name]
        headers = [cell.value for cell in sheet[1]]  # 第一行作为表头
        sheet_data = []

        # 从第二行开始遍历每一行
        for row in sheet.iter_rows(min_row=2, values_only=True):
            row_data = dict(zip(headers, row))
            sheet_data.append(row_data)

        result.append({sheet_name: sheet_data})

    return result


def excel_to_json(file_path):
    # 使用字典存储每个工作表的内容
    sheets_data = pd.read_excel(file_path, sheet_name=None)

    json_data = {}
    for sheet_name, df in sheets_data.items():
        # 将每个 DataFrame 转换为 JSON 数组
        json_data[sheet_name] = df.to_dict(orient="records")
    return json_data


# 示例调用
if __name__ == "__main__":
    excel_file = "eu.xlsx"
    json_data = excel_to_json(excel_file)

    # 每个表对应的 JSON 数据
    # 格式化打印 JSON
    # print(json.dumps(json_data, indent=4))
    # print(json.dumps(json_data["part-1"], indent=4))
    # 指定输出文件路径
    output_file = "output.json"

    # 将数据写入 JSON 文件
    with open(output_file, "w", encoding="utf-8") as file:
        json.dump(json_data["Sheet1"], file, indent=4, ensure_ascii=False)  # 设置缩进和非 ASCII 显示

    print(f"数据已写入到文件: {output_file}")
